/*
This file is part of buco.  
Copyright (c) 2012 Christopher Pawelzik <christopher@cpawelzik.com>

Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php 
*/ 
package buco.core.api;

public abstract class IntegrityCheck {	
	
	protected BundleComposition composition; 
	
	/** 
	 * Only called once
	 */
	public void setComposition(BundleComposition composition) {
		this.composition = composition; 
	}
	
	/** 
	 * Called for each bundle of the composition when the user initiates a integrity check. 
	 */
	public void checkIntegrity(Bundle bundle, IntegrityReport report) {
		
	}
	
	/** 
	 * Called when a bundle is added to the composition.
	 */
	public void bundleAdded(Bundle bundle, IntegrityReport report) {
		
	}
	
	/** 
	 * Called when a bundle is removed from the composition. 
	 */	
	public void bundleRemoved(Bundle bundle, IntegrityReport report) {
		
	}
	
	/** 
	 * Called when a wire is activated or disabled. 
	 */
	public void toggleWire(BundleWire wire, IntegrityReport report) {
		
	}
}
